This invention relates generally to the field of telecommunications. More specifically, the present invention concerns a method and system for establishing a secondary channel between computers through the use of a telephone connection.
During the course of a telephone conversation, which is carried on a low-bandwidth channel, the individuals involved in the telephone conversation may want to use their computers to share files or edit a document together over a secondary, high-speed channel. The Internet, to which both computers are likely to be connected, can provide such a channel. However, there are several difficulties in establishing such a connection between the computers.
In order for both computers to communicate, they must be able to find each other on the Internet. Although one user could read their computer's IP address to the other user over the telephone, so that the other user could enter it into their computer, this approach is not particularly user-friendly, and non-expert users may have difficulty obtaining the necessary information from their computers. Alternatively, a location service, such as those that accompany instant messaging clients, could be used, but this requires that the parties interrupt their conversation to exchange screen names. If the parties exchange instant message screen names, they will have exchanged only enough information to communicate using one specific instant messaging application, instead of other collaboration programs that they may have in common.
Software discovery and compatibility may also be a problem, for example, for those instances in which one party is on the telephone assisting another party with a computer problem. Remote desktop software would facilitate the diagnosis of the computer problem, but to use such software, the parties need to discover that they have compatible software installed, and then they need to exchange the configuration information for those services. This two-step process of discovery and exchange may be simple for common services such as e-mail and instant messaging, but services such as remote desktop software and Internet teleconferencing usually require familiarity with the software and complicated configuration information such as host servers, proxies, and ports. These steps may be a daunting task, particularly for the novice user.
Alternatively, the parties may have compatible software installed, but are not aware of this compatibility. For example, one party's video-sharing application may be able to communicate with the other party's teleconferencing software, but neither party is able to discover or exchange the necessary information for these applications to communicate.
The parties may not have a specific goal of collaboration in advance, or even be aware that their computers can communicate with each other. However, they could be informed that they both have the same game installed on their respective computers and then decide to play against each other over the Internet. By presenting the parties with a menu of possibilities, they can socialize in ways not previously planned.
Security may also be a concern, particularly if one party wants to send the other party a confidential document. In this case, it is necessary to insure that only the intended party can receive the file, and that no one can tamper with the file while it is in transit. In a preferred scenario, the computers may have certificates issued by the same certification authority, which they can send to each other. The users then compare fingerprints of the received certificates over the telephone to insure that they were not tampered with while in transit. The users then configure their respective applications to connect only to the corresponding authenticated computer, and to encrypt all data sent across the network. In a more likely scenario, one or both of the computers may not possess the necessary keys or certificates, in which case the secure interaction may not be possible.
Consequently it is desirable to be able to provide a method and system for utilizing a low-bandwidth channel, such as a telephone, to automatically discover and establish an optionally secure secondary high-speed channel for communication and also to automatically configure compatible applications to communicate with each other.